class Solution 
{
public:
    int pivotIndex(vector<int>& nums) 
    {
        // 1、初始化
        int n = nums.size();
        // 2、预处理前/后缀和数组
        vector<int> f(n), g(n);
        for(int i = 1; i < n; ++i) f[i] = f[i - 1] + nums[i - 1];
        for(int j = n - 2; j >= 0; --j) g[j] = g[j + 1] + nums[j + 1];
        // 3、使用前/后缀合数组
        for(int i = 0; i < n; ++i) 
            if(f[i] == g[i]) 
                return i;

        return -1;
    }
};
